﻿
namespace Metah.Compilation.X {
    public enum ErrorKind {
        CodeNotAllowedInSchemaOnlyFile = Error.XStart + 100,
        CannotAddClassToParent,
        NestedClassNameEqualToParent,
        ParameterlessConstructorRequired,
        DuplicateClassAlias,
        CSNamespaceRequired,
        CSNamespaceNotEqualTo,
        DuplicateAnnotation,
        AnnotationNotAllowed,
        InvalidNamespaceUri,
        NamespaceUriReserved,
        DuplicateUriAlias,
        InvalidUriAlias,
        NamespaceImportAliasReserved,
        DuplicateNamespaceImportUri,
        DuplicateNamespaceImportAlias,
        InvalidNamespaceImportUri,
        InvalidQualifiableNameAlias,
        AmbiguousQualifiableName,
        InvalidQualifiableName,
        QualifiableNameNotEqualTo,
        DerivationProhibitionNotEqualTo,
        InstanceProhibitionNotEqualTo,
        ElementQualificationNotEqualTo,
        AttributeQualificationNotEqualTo,
        //
        CircularReferenceDetected,
        NameRequiredForGlobalType,
        NameNotAllowedForLocalType,
        DerivationProhibitionNotAllowedForLocalType,
        AbstractNotAllowedForLocalType,
        LocalTypeAndTypeReferenceNotCompatible,
        TypeNotCompatibleWith,
        SpecificTypeRequired,
        TypeRequired,
        SimpleTypeRequired,
        CannotExtendOrRestrictSystemRootType,
        CannotRestrictSystemRootSimpleType,
        AbstractNotAllowedForSimpleType,
        MixedNotAllowedForSimpleType,
        InstanceProhibitionNotAllowedForSimpleType,
        AttributeSetNotAllowedForSimpleType,
        ChildrenNotAllowedForSimpleType,
        CodeNotAllowedInFacetSetForSimpleType,
        BaseTypeOfComplexTypeCannotBeLocal,
        MixedNotAllowedForSimpleChildComplexType,
        ChildStructNotAllowedForSimpleChildComplexType,
        FacetSetNotAllowedForComplexChildComplexType,
        ExtensionDerivationProhibited,
        RestrictionDerivationProhibited,
        ListDerivationProhibited,
        UnionDerivationProhibited,
        ListedSimpleTypeItemCannotBeList,
        UnitedSimpleTypeMemberTypeReferenceMustPrecedeLocalType,
        CannotRestrictNullBaseAttributeSet,
        CannotRestrictNullBaseChildStruct,
        MixedNotEqualToBase,
        //
        InvalidSimpleTypeLiteral,
        //QualifiableNameLiteralCannotBeString,
        ComplexChildComplexTypeLiteralMustBeString,
        InvalidInteger,
        FacetNotEqualTo,
        DuplicateFacet,
        FacetNotApplicable,
        MaxLengthMustGreaterThanOrEqualToMinLength,
        MinLengthMustGreaterThanOrEqualToBaseMinLength,
        MinLengthMustEqualToBaseMinLengthIfBaseIsFixed,
        MaxLengthMustLessThanOrEqualToBaseMaxLength,
        MaxLengthMustEqualToBaseMaxLengthIfBaseIsFixed,
        MaxLengthMustGreaterThanOrEqualToBaseMinLength,
        MinLengthMustLessThanOrEqualToBaseMaxLength,
        TotalDigitsMustGreaterThanZero,
        FractionDigitsMustLessThanOrEqualToTotalDigits,
        TotalDigitsMustLessThanOrEqualToBaseTotalDigits,
        TotalDigitsMustEqualToBaseTotalDigitsIfBaseIsFixed,
        FractionDigitsMustLessThanOrEqualToBaseFractionDigits,
        FractionDigitsMustEqualToBaseFractionDigitsIfBaseIsFixed,
        FractionDigitsMustLessThanOrEqualToBaseTotalDigits,
        TotalDigitsMustGreaterThanOrEqualToBaseFractionDigits,
        LowerValueMustEqualToBaseLowerValueIfBaseIsFixed,
        UpperValueMustEqualToBaseUpperValueIfBaseIsFixed,
        UpperValueMustGreaterThanOrEqualToLowerValue,
        LowerMustBeInclusiveIfLowerValueEqualToUpperValue,
        UpperMustBeInclusiveIfLowerValueEqualToUpperValue,
        DuplicateEnumerationsItemName,
        InvalidFacetPattern,
        WhitespaceNormalizationMustStrongerThanOrEqualToBaseWhitespaceNormalization,
        WhitespaceNormalizationMustEqualToBaseWhitespaceNormalizationIfBaseIsFixed,
        //
        NameRequired,
        QualifiableNameRequired,
        NameNotEqualTo,
        NameOrMemberNameRequired,
        DuplicateMemberName,
        UnexpectedMemberName,
        ObjectNotCompatibleWith,
        DefaultOrFixedValueNotEqaulTo,
        DuplicateWildcardUri,
        InvalidWildcardUris,
        WildcardRequired,
        WildcardNotEqualTo,
        RestrictingWildcardNotEqualToOrRestrictedThanRestricted,
        CannotUniteWildcardWith,
        //
        MemberNameNotAllowedForGlobalAttribute,
        DuplicateAttributeFullName,
        RestrictingAttributeMemberNameNotEqualToRestrictedAttribute,
        RestrictingAttributeIsOptionalButRestrictedAttributeIsRequired,
        RestrictedAttributeNotFoundAndNoBaseWildcard,
        RestrictingAttributeNamespaceNotMatchWithBaseWildcard,
        RestrictingAttributeTypeNotEqualToOrRestrictedDeriveFromRestrictedAttributeType,
        AttributeHasDefaultValueMustBeOptional,
        RequiredAttributeNotRestricting,
        RestrictedAttributesWildcardNotFound,
        RestrictedAttributeAndRestrictingAttributeMustBothHasFixedValueOrNeither,
        RestrictedAttributeFixedValueNotEqualToRestrictingAttributeFixedValue,
        IfGlobalAttributeHasFixedValueAttributeReferenceMustHasFixedValueOrAbsent,
        AttributeReferenceFixedValueNotEqualToGlobalAttributeFixedValue,
        //
        OccursNotEqualTo,
        MaxOccursMustGreaterThanZero,
        MaxOccursMustGreaterThanOrEqualToMinOccurs,
        ListCodeNotAllowedForNonListChild,
        UnorderedChildStructMustBeDirectMemberOfChildren,
        UnorderedChildStructMustBeTheOnlyMemberOfChildren,
        UnorderedChildStructOrMemberMaxOccursMustBeOne,
        UnorderedChildStructMemberMustBeElementOrElementReference,
        DuplicateElementFullNameInUnorderedChildStruct,
        NameRequiredForGlobalChildStruct,
        MemberNameNotAllowedForGlobalChildStruct,
        OccursNotAllowedForGlobalChildStruct,
        CodeNotAllowedForGlobalChildStruct,
        NameNotAllowedForLocalChildStruct,
        OccursNotAllowedForGlobalElement,
        MemberNameNotAllowedForGlobalElement,
        RestrictedChildNotFound,
        RestrictingChildMinOccursNotEqualToOrGreaterThanRestrictedChild,
        RestrictingChildMaxOccursNotEqualToOrLessThanRestrictedChild,
        RestrictedChildIsNotStruct,
        RestrictingChildStructKindNotEqualToRestricted,
        RequiredChildNotRestricting,
        RestrictingChoiceMustHasMembersIfRestrictedChoiceNotEffectiveOptional,
        RestrictedChildIsNotElementOrElementWildcard,
        RestrictingElementFullNameNotMatchWithRestrictedElement,
        RestrictingElementNamespaceNotMatchWithRestrictedElementWildcard,
        RestrictingElementTypeNotEqualToOrRestrictedDeriveFromRestrictedElementType,
        CannotSetDefaultOrFixedValueIfElementTypeIsSystemRootType,
        CannotSetDefaultOrFixedValueIfElementComplexTypeIsNotMixed,
        CannotSetDefaultOrFixedValueIfElementTypeHasNoChildStruct,
        CannotSetDefaultOrFixedValueIfElementTypeChildStructIsNotEffectiveOptional,
        RestrictedElementAndRestrictingElementMustBothHasFixedValueOrNeither,
        RestrictedElementFixedValueNotEqualToRestrictingElementFixedValue,
        SubstitutingElementTypeNotEqualToOrDeriveFromSubstitutedElementType,
        RestrictedChildIsNotElementWildcard,
        UpaViolated,
        //
        //WildcardLocalNameMustHasNonEmptyUri,
        AttributeStepNotAllowedInIdentityPath,
        InvalidAttributeStep,
        SplitListValueAnnotationRequiresSingleValuePathExpression,
        DuplicateIdentityConstraintName,
        KeyRefValueCountNotEqualToReferentialValueCount,
    }

}
